<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
      <title>GTL - Graph Template Library: graph Class Reference</title>
      <link href="doxygen.css" rel="stylesheet" type="text/css">
  </head>
  <body>
    <p class="links">  
      <a href="../index.html">Home</a> |
      Documentation |
      <a href="../register.html">Download</a> |
      <a href="../platforms.html">Platforms</a> |
      <a href="../refer.html">Projects</a> |      
      <a href="../lists.html">Mailing Lists</a> |
      <a href="../history.html">Version History</a>
    </p>

<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>graph Class Reference</h1><!-- doxytag: class="graph" -->A directed or undirected <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>.  
<a href="#_details">More...</a>
<p>

<p>
<a href="a00153.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#6aaa56b4528d2fdb8f0ecd97e04f6651">graph</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#4339b04667a9977110e59a1326b0e2d5">graph</a> (const <a class="el" href="a00014.html">graph</a> &amp;G)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#739d58ba54344d5107e7841e34d01243">graph</a> (const <a class="el" href="a00014.html">graph</a> &amp;G, const list&lt; <a class="el" href="a00020.html">node</a> &gt; &amp;nodes)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a10c09b6e5c7f6f98432d1c454aefe89">graph</a> (const <a class="el" href="a00014.html">graph</a> &amp;G, list&lt; <a class="el" href="a00020.html">node</a> &gt;::const_iterator it, list&lt; <a class="el" href="a00020.html">node</a> &gt;::const_iterator end)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#44d8904cc35fb530b02219df7ac9aa99">~graph</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#1615678dee6248d6d8a00c553770b3bd">make_directed</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#31c8b895bd842f1b9dcc67649956cfc7">make_undirected</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#fa43d64e31e74fb87b8b11aad0b90f8b">is_directed</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#439e96d5711b2e5e11a62317784310a9">is_undirected</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#4e99308129e3529bef98857ff762b39f">is_bidirected</a> (<a class="el" href="a00011.html">edge_map</a>&lt; <a class="el" href="a00010.html">edge</a> &gt; &amp;rev) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#2a19afec99de7d8655c11b5b7e49dc2c">is_connected</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#bab8ba361624ba7ad7f204848553f3b0">is_acyclic</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#7c3b1e189dd83727ca2cf398ce739ad3">number_of_nodes</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#76255563fe52dd80fa84da5499d011ea">number_of_edges</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00020.html">node</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#69a41fa7005deee6062f2b8798d3fc74">center</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="a00020.html">node</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#8dfd63c0fde7f4b552d9e3b319b5854b">new_node</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="a00010.html">edge</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#cf88b7da133b1a1188ec8de62f0cf246">new_edge</a> (<a class="el" href="a00020.html">node</a> s, <a class="el" href="a00020.html">node</a> t)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#8bdc09d5b9ac4bd26586b054d8fcbe91">del_node</a> (<a class="el" href="a00020.html">node</a> n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#d0ca1578643a51f96a76a846f14558df">del_all_nodes</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#d9356508c49c542dfd4b7169297387c6">del_edge</a> (<a class="el" href="a00010.html">edge</a> e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#ae52be443c5aef001b5f6758855f15ad">del_all_edges</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#9ff5d6af3653e79f87b836701453f55a">clear</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">node_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#6c54a7c78135a47a60560f594a99cf87">nodes_begin</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">node_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#0f70d01e92d215c2eb7d6d1df040043b">nodes_end</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">edge_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#3ba1ee51cb780943341667fb40efd54f">edges_begin</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">edge_iterator&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#70947f7084a791ee336820a75f8fe8ff">edges_end</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">list&lt; <a class="el" href="a00020.html">node</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#c8d0f601bbaa9a3ab9cdb52ff1e4bd7d">all_nodes</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">list&lt; <a class="el" href="a00010.html">edge</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#0d6369f27157c0180570b5ce0dd7974c">all_edges</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00020.html">node</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#069c708418107c88af0adc7ab518727f">choose_node</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#b2f8520bcac080d73c55228fecc61825">hide_edge</a> (<a class="el" href="a00010.html">edge</a> e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#2e5426682a0897b9f9104b019970bedc">restore_edge</a> (<a class="el" href="a00010.html">edge</a> e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">list&lt; <a class="el" href="a00010.html">edge</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#be5a6c173773a8cbae7be1e21e152227">hide_node</a> (<a class="el" href="a00020.html">node</a> n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#b57aab79e649cc275052b7decbdd03ec">restore_node</a> (<a class="el" href="a00020.html">node</a> n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#d185dbb16a66777632eb13eec3c54244">induced_subgraph</a> (list&lt; <a class="el" href="a00020.html">node</a> &gt; &amp;subgraph_nodes)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#53e2a5505fa6427587e12d66e4a86cec">restore_graph</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">list&lt; <a class="el" href="a00010.html">edge</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#0ad4bcb72d924f961d5f695932785154">insert_reverse_edges</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00013.html">GML_error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#93a350b8ce63ef0b0545722ba519fd3d">load</a> (const string &amp;filename, bool preserve_ids=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00013.html">GML_error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#37c17685e1becc66723699d4c9db072b">load</a> (const char *filename, bool preserve_ids=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#1919b4b731aeabee4bea17ca1494d0d5">save</a> (const char *filename) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#5dceca797bde326bb915fcc53e7e439d">save</a> (ostream *file=&amp;cout) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#fb7606eaa8d673b6599af24437c0546c">pre_new_node_handler</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#63b7354fbe3614748cc27340e99ff919">post_new_node_handler</a> (<a class="el" href="a00020.html">node</a> n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#06f8fe6d5ee6bef9066f78a0b95c083a">pre_del_node_handler</a> (<a class="el" href="a00020.html">node</a> n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#4e08a559e3f1007a1a16a53c9a15cb0f">post_del_node_handler</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#96e6fadc8e77bde74448d4ba4b873628">pre_hide_node_handler</a> (<a class="el" href="a00020.html">node</a> n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#89cd4d0acb9a82a85ba7845a92a68044">post_hide_node_handler</a> (<a class="el" href="a00020.html">node</a> n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#7da481e2f363380343a68d52acc8473b">pre_restore_node_handler</a> (<a class="el" href="a00020.html">node</a> n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#d0fd5fc9618111890b596601b6273713">post_restore_node_handler</a> (<a class="el" href="a00020.html">node</a> n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#e57c6789ea5945e32fca200163e44d8b">pre_new_edge_handler</a> (<a class="el" href="a00020.html">node</a> s, <a class="el" href="a00020.html">node</a> t)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#88f098d412bcbacba975e70be8d1a892">post_new_edge_handler</a> (<a class="el" href="a00010.html">edge</a> e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#413590984a00770927ba619c409a7b57">pre_del_edge_handler</a> (<a class="el" href="a00010.html">edge</a> e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#b9ac8bcc7288986de69cd467beb33600">post_del_edge_handler</a> (<a class="el" href="a00020.html">node</a>, <a class="el" href="a00020.html">node</a>)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#d755188a78a38f733cf362d4e8dd47f8">pre_hide_edge_handler</a> (<a class="el" href="a00010.html">edge</a> e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#7554deb5a22be446b2b423f2ce481c64">post_hide_edge_handler</a> (<a class="el" href="a00010.html">edge</a> e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#4c3634093c7d8877b6c229bcbfa4702b">pre_restore_edge_handler</a> (<a class="el" href="a00010.html">edge</a> e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#8c0f68bcd054fc2736716996bbf56472">post_restore_edge_handler</a> (<a class="el" href="a00010.html">edge</a> e)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#16ccad78837d16be59854549cd2d847a">pre_clear_handler</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#870633528590b7925cd27776bdd2bbd2">post_clear_handler</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#505198f412b1e426e9d09b62ea9811e8">pre_make_directed_handler</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#43dc35def3d8125eb8f3841d55e0b1c8">post_make_directed_handler</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#8964107991e6f411ba8992f6b1deda21">pre_make_undirected_handler</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#3d2bc348d12931aff1d2e97a6b4285c3">post_make_undirected_handler</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#81300befaa8bc1525793f4849f1473a5">pre_graph_save_handler</a> (ostream *os) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#daf1ba615a8647485b89e94cdb6ae209">save_graph_info_handler</a> (ostream *) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#9ff703e09f902bf431664587057081ca">save_node_info_handler</a> (ostream *, <a class="el" href="a00020.html">node</a>) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#9623957f45c2bc7c6042fd22c8a86241">save_edge_info_handler</a> (ostream *, <a class="el" href="a00010.html">edge</a>) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#adf85f37373798a6c53be7c0a5e98025">after_graph_save_handler</a> (ostream *) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#5aab9939de7973f7da6cc976a766c7a1">top_level_key_handler</a> (GML_pair *list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#9f674b4ef5a4073766d77c617769e8e5">load_node_info_handler</a> (<a class="el" href="a00020.html">node</a> n, GML_pair *list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#2938b831b990712ac5c466acc7864874">load_edge_info_handler</a> (<a class="el" href="a00010.html">edge</a> e, GML_pair *list)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#3777321eda0c9d2b9a5cd6dc71388920">load_graph_info_handler</a> (GML_pair *list)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A directed or undirected <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>. 
<p>
<dl class="rcs" compact><dt><b>Date</b></dt><dd></dd></dl>
<dl class="rcs" compact><dt><b>Revision</b></dt><dd></dd></dl>
<p>
A <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> G=(V,E) consists of a set of nodes V and a set of edges E , where every <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> can be viewed as a (ordered) pair of nodes (u,v) connecting source u with target v . Obviously this implies a direction on the edges, which is why we call these graphs directed (this is the default). A <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> can be made undirected by just ignoring the (implicit) direction.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00020.html" title="A node in a graph.">node</a> <p>
<a class="el" href="a00010.html" title="An edge in a graph.">edge</a> </dd></dl>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="6aaa56b4528d2fdb8f0ecd97e04f6651"></a><!-- doxytag: member="graph::graph" ref="6aaa56b4528d2fdb8f0ecd97e04f6651" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">graph::graph           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Generates an empty <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>, i.e. without any nodes and any edges. 
</div>
</div><p>
<a class="anchor" name="4339b04667a9977110e59a1326b0e2d5"></a><!-- doxytag: member="graph::graph" ref="4339b04667a9977110e59a1326b0e2d5" args="(const graph &amp;G)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">graph::graph           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00014.html">graph</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>G</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy constructor. <em>Please note:</em> This will generate an isomorpic copy of <code>G</code>. Although this <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> will look like <code>G</code> it is not <em>physically</em> the same. Especially it consists of nodes and edges, which of course have counterparts in <code>G</code>, but are different. This means that the nodes (edges) in the copy have undefined behaviour if used within a <a class="el" href="a00021.html">node_map</a> (<a class="el" href="a00011.html">edge_map</a> ) of the original <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;G&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="739d58ba54344d5107e7841e34d01243"></a><!-- doxytag: member="graph::graph" ref="739d58ba54344d5107e7841e34d01243" args="(const graph &amp;G, const list&lt; node &gt; &amp;nodes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">graph::graph           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00014.html">graph</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>G</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const list&lt; <a class="el" href="a00020.html">node</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>nodes</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Makes new <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> isomorphic to the subgraph induced by <code>nodes</code>. The same restriction as for the ordinary copy constructor applies to this one.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;G&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;nodes&lt;/code&gt;</em>&nbsp;</td><td>nodes of <code>G</code>, which form the induced subgraph this <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> will be isomorphic to. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="a10c09b6e5c7f6f98432d1c454aefe89"></a><!-- doxytag: member="graph::graph" ref="a10c09b6e5c7f6f98432d1c454aefe89" args="(const graph &amp;G, list&lt; node &gt;::const_iterator it, list&lt; node &gt;::const_iterator end)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">graph::graph           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00014.html">graph</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>G</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">list&lt; <a class="el" href="a00020.html">node</a> &gt;::const_iterator&nbsp;</td>
          <td class="paramname"> <em>it</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">list&lt; <a class="el" href="a00020.html">node</a> &gt;::const_iterator&nbsp;</td>
          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Makes new <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> isomorphic to the subgraph induced by the nodes in the range from <code>it</code> to <code>end</code> The same restriction as for the ordinary copy constructor applies to this one.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;G&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;it&lt;/code&gt;</em>&nbsp;</td><td>beginning of nodes </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;end&lt;/code&gt;</em>&nbsp;</td><td>end of nodes </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="44d8904cc35fb530b02219df7ac9aa99"></a><!-- doxytag: member="graph::~graph" ref="44d8904cc35fb530b02219df7ac9aa99" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual graph::~graph           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor. Deletes all nodes and edges. 
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="1615678dee6248d6d8a00c553770b3bd"></a><!-- doxytag: member="graph::make_directed" ref="1615678dee6248d6d8a00c553770b3bd" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::make_directed           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Makes <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> directed. 
</div>
</div><p>
<a class="anchor" name="31c8b895bd842f1b9dcc67649956cfc7"></a><!-- doxytag: member="graph::make_undirected" ref="31c8b895bd842f1b9dcc67649956cfc7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::make_undirected           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Makes <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> undirected. 
</div>
</div><p>
<a class="anchor" name="fa43d64e31e74fb87b8b11aad0b90f8b"></a><!-- doxytag: member="graph::is_directed" ref="fa43d64e31e74fb87b8b11aad0b90f8b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool graph::is_directed           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test whether the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> is directed.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true iff the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> is directed. </dd></dl>

</div>
</div><p>
<a class="anchor" name="439e96d5711b2e5e11a62317784310a9"></a><!-- doxytag: member="graph::is_undirected" ref="439e96d5711b2e5e11a62317784310a9" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool graph::is_undirected           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test whether the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> is undirected.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true iff the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> is undirected </dd></dl>

</div>
</div><p>
<a class="anchor" name="4e99308129e3529bef98857ff762b39f"></a><!-- doxytag: member="graph::is_bidirected" ref="4e99308129e3529bef98857ff762b39f" args="(edge_map&lt; edge &gt; &amp;rev) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool graph::is_bidirected           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00011.html">edge_map</a>&lt; <a class="el" href="a00010.html">edge</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>rev</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if for all edges <em>(v, w)</em> the reverse <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> <em>(w,v)</em> is present, too. Additionally the reverse of some <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> <code>e</code> will be stored as <code>rev[e]</code>. If there is no reverse <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> of <code>e</code> <code>rev[e]</code> will be the invalid <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> <code>edge()</code>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;rev&lt;/code&gt;</em>&nbsp;</td><td>map associating every <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> with its reverse <a class="el" href="a00010.html" title="An edge in a graph.">edge</a>. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true iff every <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> has a reverse <a class="el" href="a00010.html" title="An edge in a graph.">edge</a>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="2a19afec99de7d8655c11b5b7e49dc2c"></a><!-- doxytag: member="graph::is_connected" ref="2a19afec99de7d8655c11b5b7e49dc2c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool graph::is_connected           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test whether the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> is connected<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true iff the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> is connected </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00008.html" title="Depth-First-Search (DFS) algorithm.">dfs</a> <p>
<a class="el" href="a00003.html" title="Breadth-First-Search (BFS) algorithm.">bfs</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="bab8ba361624ba7ad7f204848553f3b0"></a><!-- doxytag: member="graph::is_acyclic" ref="bab8ba361624ba7ad7f204848553f3b0" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool graph::is_acyclic           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test whether the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> is acyclic<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true iff the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> contains no cycles </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00028.html" title="Topological sorting.">topsort</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="7c3b1e189dd83727ca2cf398ce739ad3"></a><!-- doxytag: member="graph::number_of_nodes" ref="7c3b1e189dd83727ca2cf398ce739ad3" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int graph::number_of_nodes           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the number of nodes in the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>number of nodes </dd></dl>

</div>
</div><p>
<a class="anchor" name="76255563fe52dd80fa84da5499d011ea"></a><!-- doxytag: member="graph::number_of_edges" ref="76255563fe52dd80fa84da5499d011ea" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int graph::number_of_edges           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the number of (visible) edges in the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a><p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>number of edges </dd></dl>

</div>
</div><p>
<a class="anchor" name="69a41fa7005deee6062f2b8798d3fc74"></a><!-- doxytag: member="graph::center" ref="69a41fa7005deee6062f2b8798d3fc74" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00020.html">node</a> graph::center           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns a center of the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> which is defined as a <a class="el" href="a00020.html" title="A node in a graph.">node</a> with maximum excentricity.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>one <a class="el" href="a00020.html" title="A node in a graph.">node</a> of the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> center </dd></dl>

</div>
</div><p>
<a class="anchor" name="8dfd63c0fde7f4b552d9e3b319b5854b"></a><!-- doxytag: member="graph::new_node" ref="8dfd63c0fde7f4b552d9e3b319b5854b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="a00020.html">node</a> graph::new_node           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds a new <a class="el" href="a00020.html" title="A node in a graph.">node</a>.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>new <a class="el" href="a00020.html" title="A node in a graph.">node</a>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="cf88b7da133b1a1188ec8de62f0cf246"></a><!-- doxytag: member="graph::new_edge" ref="cf88b7da133b1a1188ec8de62f0cf246" args="(node s, node t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="a00010.html">edge</a> graph::new_edge           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds new <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> from <code>s</code> to <code>t</code>.<p>
<em>Precondition:</em> <code>s,t</code> are valid nodes in this <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;s&lt;/code&gt;</em>&nbsp;</td><td>source of new <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;t&lt;/code&gt;</em>&nbsp;</td><td>target of new <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>new <a class="el" href="a00010.html" title="An edge in a graph.">edge</a>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="8bdc09d5b9ac4bd26586b054d8fcbe91"></a><!-- doxytag: member="graph::del_node" ref="8bdc09d5b9ac4bd26586b054d8fcbe91" args="(node n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::del_node           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Deletes <a class="el" href="a00020.html" title="A node in a graph.">node</a> <code>n</code>, and thus all edges incident with <code>n</code>.<p>
<em>Precondition:</em> <code>n</code> is a valid <em>visible</em> <a class="el" href="a00020.html" title="A node in a graph.">node</a> in this <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a><p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;n&lt;/code&gt;</em>&nbsp;</td><td>visible <a class="el" href="a00020.html" title="A node in a graph.">node</a> to be deleted </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="d0ca1578643a51f96a76a846f14558df"></a><!-- doxytag: member="graph::del_all_nodes" ref="d0ca1578643a51f96a76a846f14558df" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::del_all_nodes           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Deletes all visible nodes, i.e. the hidden ones stay. </dd></dl>

</div>
</div><p>
<a class="anchor" name="d9356508c49c542dfd4b7169297387c6"></a><!-- doxytag: member="graph::del_edge" ref="d9356508c49c542dfd4b7169297387c6" args="(edge e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::del_edge           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00010.html">edge</a>&nbsp;</td>
          <td class="paramname"> <em>e</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Deletes <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> <code>e</code>.<p>
<em>Precondition:</em> <code>e</code> is a valid <em>visible</em> <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> in this <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;e&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00010.html" title="An edge in a graph.">edge</a> to be deleted </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ae52be443c5aef001b5f6758855f15ad"></a><!-- doxytag: member="graph::del_all_edges" ref="ae52be443c5aef001b5f6758855f15ad" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::del_all_edges           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Deletes all visible edges, i.e. the hidden ones stay. </dd></dl>

</div>
</div><p>
<a class="anchor" name="9ff5d6af3653e79f87b836701453f55a"></a><!-- doxytag: member="graph::clear" ref="9ff5d6af3653e79f87b836701453f55a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::clear           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Deletes all nodes and edges, even the hidden ones 
</div>
</div><p>
<a class="anchor" name="6c54a7c78135a47a60560f594a99cf87"></a><!-- doxytag: member="graph::nodes_begin" ref="6c54a7c78135a47a60560f594a99cf87" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">node_iterator graph::nodes_begin           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Iterate through all nodes in the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>start for iteration through all nodes in the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="0f70d01e92d215c2eb7d6d1df040043b"></a><!-- doxytag: member="graph::nodes_end" ref="0f70d01e92d215c2eb7d6d1df040043b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">node_iterator graph::nodes_end           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Iterate through all nodes in the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>end for iteration through all nodes in the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="3ba1ee51cb780943341667fb40efd54f"></a><!-- doxytag: member="graph::edges_begin" ref="3ba1ee51cb780943341667fb40efd54f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">edge_iterator graph::edges_begin           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Iterate through all edges in the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>start for iteration through all edges in the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="70947f7084a791ee336820a75f8fe8ff"></a><!-- doxytag: member="graph::edges_end" ref="70947f7084a791ee336820a75f8fe8ff" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">edge_iterator graph::edges_end           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Iterate through all edges in the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>end for iteration through all edges in the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="c8d0f601bbaa9a3ab9cdb52ff1e4bd7d"></a><!-- doxytag: member="graph::all_nodes" ref="c8d0f601bbaa9a3ab9cdb52ff1e4bd7d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">list&lt;<a class="el" href="a00020.html">node</a>&gt; graph::all_nodes           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd><dl class="return" compact><dt><b>Returns:</b></dt><dd>a list of all nodes of the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> </dd></dl>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="0d6369f27157c0180570b5ce0dd7974c"></a><!-- doxytag: member="graph::all_edges" ref="0d6369f27157c0180570b5ce0dd7974c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">list&lt;<a class="el" href="a00010.html">edge</a>&gt; graph::all_edges           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd><dl class="return" compact><dt><b>Returns:</b></dt><dd>a list of all edges of the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> </dd></dl>
</dd></dl>

</div>
</div><p>
<a class="anchor" name="069c708418107c88af0adc7ab518727f"></a><!-- doxytag: member="graph::choose_node" ref="069c708418107c88af0adc7ab518727f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00020.html">node</a> graph::choose_node           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000005">Deprecated:</a></b></dt><dd></dd></dl>

</div>
</div><p>
<a class="anchor" name="b2f8520bcac080d73c55228fecc61825"></a><!-- doxytag: member="graph::hide_edge" ref="b2f8520bcac080d73c55228fecc61825" args="(edge e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::hide_edge           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00010.html">edge</a>&nbsp;</td>
          <td class="paramname"> <em>e</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Hides an <a class="el" href="a00010.html" title="An edge in a graph.">edge</a>.<p>
<em>Precondition:</em> <code>e</code> is a valid <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> in this <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a><p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;e&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00010.html" title="An edge in a graph.">edge</a> to be hidden </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="2e5426682a0897b9f9104b019970bedc"></a><!-- doxytag: member="graph::restore_edge" ref="2e5426682a0897b9f9104b019970bedc" args="(edge e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::restore_edge           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00010.html">edge</a>&nbsp;</td>
          <td class="paramname"> <em>e</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Restores a hidden <a class="el" href="a00010.html" title="An edge in a graph.">edge</a><p>
<em>Precondition:</em> <code>e</code> is a valid <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> in this <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a><p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;e&lt;/code&gt;</em>&nbsp;</td><td>hidden <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="be5a6c173773a8cbae7be1e21e152227"></a><!-- doxytag: member="graph::hide_node" ref="be5a6c173773a8cbae7be1e21e152227" args="(node n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">list&lt;<a class="el" href="a00010.html">edge</a>&gt; graph::hide_node           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Hides a <a class="el" href="a00020.html" title="A node in a graph.">node</a>. <em>Please note:</em> all the edges incident with <code>n</code> will be hidden, too. All these edges are returned in a list.<p>
<em>Precondition:</em> <code>n</code> is a valid <a class="el" href="a00020.html" title="A node in a graph.">node</a> in this <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a><p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;e&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00020.html" title="A node in a graph.">node</a> to be hidden </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>list of implicitly hidden, incident edges </dd></dl>

</div>
</div><p>
<a class="anchor" name="b57aab79e649cc275052b7decbdd03ec"></a><!-- doxytag: member="graph::restore_node" ref="b57aab79e649cc275052b7decbdd03ec" args="(node n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::restore_node           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Restores a hidden <a class="el" href="a00020.html" title="A node in a graph.">node</a>. This only restores the <a class="el" href="a00020.html" title="A node in a graph.">node</a> itself. It doesn't restore the incident edges, i.e. you will have to restore all the edges you get returned when calling <a class="el" href="a00014.html#be5a6c173773a8cbae7be1e21e152227">graph::hide_node</a> yourself.<p>
<em>Precondition:</em> <code>n</code> is a valid <a class="el" href="a00020.html" title="A node in a graph.">node</a> in this <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;n&lt;/code&gt;</em>&nbsp;</td><td>hidden <a class="el" href="a00020.html" title="A node in a graph.">node</a> </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="d185dbb16a66777632eb13eec3c54244"></a><!-- doxytag: member="graph::induced_subgraph" ref="d185dbb16a66777632eb13eec3c54244" args="(list&lt; node &gt; &amp;subgraph_nodes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::induced_subgraph           </td>
          <td>(</td>
          <td class="paramtype">list&lt; <a class="el" href="a00020.html">node</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>subgraph_nodes</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Hides all nodes <em>not</em> contained in <code>subgraph_nodes</code>, i.e. (the visible part of) the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> is the induced subgraph with respect to the nodes in <code>subgraph_nodes</code>. It is allowed to apply this function recursively, i.e. one may call <code>induced_subgraph</code> on a <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> that is already a induced subgraph.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;subgraph_nodes&lt;/code&gt;</em>&nbsp;</td><td>nodes of subgraph. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#53e2a5505fa6427587e12d66e4a86cec">graph::restore_graph</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="53e2a5505fa6427587e12d66e4a86cec"></a><!-- doxytag: member="graph::restore_graph" ref="53e2a5505fa6427587e12d66e4a86cec" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::restore_graph           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Restores all hidden nodes and edges This means that, although the nodes and edges got hidden at different times, they will be restored all together.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#d185dbb16a66777632eb13eec3c54244">graph::induced_subgraph</a> <p>
<a class="el" href="a00014.html#b2f8520bcac080d73c55228fecc61825">graph::hide_edge</a> <p>
<a class="el" href="a00014.html#be5a6c173773a8cbae7be1e21e152227">graph::hide_node</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="0ad4bcb72d924f961d5f695932785154"></a><!-- doxytag: member="graph::insert_reverse_edges" ref="0ad4bcb72d924f961d5f695932785154" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">list&lt;<a class="el" href="a00010.html">edge</a>&gt; graph::insert_reverse_edges           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000006">Deprecated:</a></b></dt><dd>inserts for all edges of the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> a reverse <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> NOTE: this functions does NOT care about existing reverse edges </dd></dl>

</div>
</div><p>
<a class="anchor" name="93a350b8ce63ef0b0545722ba519fd3d"></a><!-- doxytag: member="graph::load" ref="93a350b8ce63ef0b0545722ba519fd3d" args="(const string &amp;filename, bool preserve_ids=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00013.html">GML_error</a> graph::load           </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>preserve_ids</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Load <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> from a file in GML-format. The optional parameter <code>preserve_ids</code> controls whether to give the nodes the same ids as in the GML file. You can enable this for debugging but you should disable it for final releases since it may make <code><a class="el" href="a00021.html" title="A specialized map with nodes as keys.">node_map</a></code> unecessarily large.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;filename&lt;/code&gt;</em>&nbsp;</td><td>file in GML-format. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;preserve_ids&lt;/code&gt;</em>&nbsp;</td><td>if true all the nodes will get the same id as in the GML file. If false (default) the nodes will be numbered consecutively beginning with 0. However the order of the nodes in the GML file will be preserved. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>detailed error description (hopefully GML_OK). For details see <a class="el" href="a00013.html#66fe2c5a3d2d40e77ff486007dfe7f76">GML_error::err_num</a>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="37c17685e1becc66723699d4c9db072b"></a><!-- doxytag: member="graph::load" ref="37c17685e1becc66723699d4c9db072b" args="(const char *filename, bool preserve_ids=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00013.html">GML_error</a> graph::load           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>preserve_ids</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Load <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> from a file in GML-format. The optional parameter <code>preserve_ids</code> controls whether to give the nodes the same ids as in the GML file. You can enable this for debugging but you should disable it for final releases since it may make <code><a class="el" href="a00021.html" title="A specialized map with nodes as keys.">node_map</a></code> unecessarily large.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;filename&lt;/code&gt;</em>&nbsp;</td><td>file in GML-format. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;preserve_ids&lt;/code&gt;</em>&nbsp;</td><td>if true all the nodes will get the same id as in the GML file. If false (default) the nodes will be numbered consecutively beginning with 0. However the order of the nodes in the GML file will be preserved. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>detailed error description (hopefully GML_OK). For details see <a class="el" href="a00013.html#66fe2c5a3d2d40e77ff486007dfe7f76">GML_error::err_num</a>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="1919b4b731aeabee4bea17ca1494d0d5"></a><!-- doxytag: member="graph::save" ref="1919b4b731aeabee4bea17ca1494d0d5" args="(const char *filename) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int graph::save           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>filename</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Save <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> to file <code>filename</code> in GML-format, i.e. <code><a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> [ <a class="el" href="a00020.html" title="A node in a graph.">node</a> [ id # ] ... <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> [ source # target #] ... ]</code><p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;filename&lt;/code&gt;</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on error 1 otherwise </dd></dl>

</div>
</div><p>
<a class="anchor" name="5dceca797bde326bb915fcc53e7e439d"></a><!-- doxytag: member="graph::save" ref="5dceca797bde326bb915fcc53e7e439d" args="(ostream *file=&amp;cout) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void graph::save           </td>
          <td>(</td>
          <td class="paramtype">ostream *&nbsp;</td>
          <td class="paramname"> <em>file</em> = <code>&amp;cout</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Saves <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> to stream <code>file</code> in GML-format.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;file&lt;/code&gt;</em>&nbsp;</td><td>output stream defaults to cout. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="fb7606eaa8d673b6599af24437c0546c"></a><!-- doxytag: member="graph::pre_new_node_handler" ref="fb7606eaa8d673b6599af24437c0546c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::pre_new_node_handler           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called before a new <a class="el" href="a00020.html" title="A node in a graph.">node</a> is created; can be redefined in a derived class for customization<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#8dfd63c0fde7f4b552d9e3b319b5854b">graph::new_node</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="63b7354fbe3614748cc27340e99ff919"></a><!-- doxytag: member="graph::post_new_node_handler" ref="63b7354fbe3614748cc27340e99ff919" args="(node n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::post_new_node_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called after a new <a class="el" href="a00020.html" title="A node in a graph.">node</a> was created; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;n&lt;/code&gt;</em>&nbsp;</td><td>created <a class="el" href="a00020.html" title="A node in a graph.">node</a> </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#8dfd63c0fde7f4b552d9e3b319b5854b">graph::new_node</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="06f8fe6d5ee6bef9066f78a0b95c083a"></a><!-- doxytag: member="graph::pre_del_node_handler" ref="06f8fe6d5ee6bef9066f78a0b95c083a" args="(node n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::pre_del_node_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called before a <a class="el" href="a00020.html" title="A node in a graph.">node</a> is deleted; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;n&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00020.html" title="A node in a graph.">node</a> deleted afterwards </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#8bdc09d5b9ac4bd26586b054d8fcbe91">graph::del_node</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="4e08a559e3f1007a1a16a53c9a15cb0f"></a><!-- doxytag: member="graph::post_del_node_handler" ref="4e08a559e3f1007a1a16a53c9a15cb0f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::post_del_node_handler           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called after a <a class="el" href="a00020.html" title="A node in a graph.">node</a> was deleted; can be redefined in a derived class for customization<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#8bdc09d5b9ac4bd26586b054d8fcbe91">graph::del_node</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="96e6fadc8e77bde74448d4ba4b873628"></a><!-- doxytag: member="graph::pre_hide_node_handler" ref="96e6fadc8e77bde74448d4ba4b873628" args="(node n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::pre_hide_node_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called before a <a class="el" href="a00020.html" title="A node in a graph.">node</a> gets hidden; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;n&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00020.html" title="A node in a graph.">node</a> to be hidden </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#be5a6c173773a8cbae7be1e21e152227">graph::hide_node</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="89cd4d0acb9a82a85ba7845a92a68044"></a><!-- doxytag: member="graph::post_hide_node_handler" ref="89cd4d0acb9a82a85ba7845a92a68044" args="(node n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::post_hide_node_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called after a <a class="el" href="a00020.html" title="A node in a graph.">node</a> got hidden; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;n&lt;/code&gt;</em>&nbsp;</td><td>hidden <a class="el" href="a00020.html" title="A node in a graph.">node</a> </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#be5a6c173773a8cbae7be1e21e152227">graph::hide_node</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="7da481e2f363380343a68d52acc8473b"></a><!-- doxytag: member="graph::pre_restore_node_handler" ref="7da481e2f363380343a68d52acc8473b" args="(node n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::pre_restore_node_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called before a <a class="el" href="a00020.html" title="A node in a graph.">node</a> is restored; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;n&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00020.html" title="A node in a graph.">node</a> to be restored </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#b57aab79e649cc275052b7decbdd03ec">graph::restore_node</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="d0fd5fc9618111890b596601b6273713"></a><!-- doxytag: member="graph::post_restore_node_handler" ref="d0fd5fc9618111890b596601b6273713" args="(node n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::post_restore_node_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called after a <a class="el" href="a00020.html" title="A node in a graph.">node</a> was restored; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;n&lt;/code&gt;</em>&nbsp;</td><td>restored <a class="el" href="a00020.html" title="A node in a graph.">node</a> </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#b57aab79e649cc275052b7decbdd03ec">graph::restore_node</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="e57c6789ea5945e32fca200163e44d8b"></a><!-- doxytag: member="graph::pre_new_edge_handler" ref="e57c6789ea5945e32fca200163e44d8b" args="(node s, node t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::pre_new_edge_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called before a new <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> is inserted; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;s&lt;/code&gt;</em>&nbsp;</td><td>source of <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> created afterwards </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;t&lt;/code&gt;</em>&nbsp;</td><td>target of <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> created afterwards </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#cf88b7da133b1a1188ec8de62f0cf246">graph::new_edge</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="88f098d412bcbacba975e70be8d1a892"></a><!-- doxytag: member="graph::post_new_edge_handler" ref="88f098d412bcbacba975e70be8d1a892" args="(edge e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::post_new_edge_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00010.html">edge</a>&nbsp;</td>
          <td class="paramname"> <em>e</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called after a new <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> was inserted; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;e&lt;/code&gt;</em>&nbsp;</td><td>created <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#cf88b7da133b1a1188ec8de62f0cf246">graph::new_edge</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="413590984a00770927ba619c409a7b57"></a><!-- doxytag: member="graph::pre_del_edge_handler" ref="413590984a00770927ba619c409a7b57" args="(edge e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::pre_del_edge_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00010.html">edge</a>&nbsp;</td>
          <td class="paramname"> <em>e</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called before a <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> is deleted; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;e&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00010.html" title="An edge in a graph.">edge</a> to be deleted </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#d9356508c49c542dfd4b7169297387c6">graph::del_edge</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="b9ac8bcc7288986de69cd467beb33600"></a><!-- doxytag: member="graph::post_del_edge_handler" ref="b9ac8bcc7288986de69cd467beb33600" args="(node, node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::post_del_edge_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called after a <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> was deleted; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;s&lt;/code&gt;</em>&nbsp;</td><td>source of <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> deleted </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;t&lt;/code&gt;</em>&nbsp;</td><td>target of <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> deleted </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#d9356508c49c542dfd4b7169297387c6">graph::del_edge</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="d755188a78a38f733cf362d4e8dd47f8"></a><!-- doxytag: member="graph::pre_hide_edge_handler" ref="d755188a78a38f733cf362d4e8dd47f8" args="(edge e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::pre_hide_edge_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00010.html">edge</a>&nbsp;</td>
          <td class="paramname"> <em>e</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called before a <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> gets hidden; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;e&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00010.html" title="An edge in a graph.">edge</a> to be hidden </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#b2f8520bcac080d73c55228fecc61825">graph::hide_edge</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="7554deb5a22be446b2b423f2ce481c64"></a><!-- doxytag: member="graph::post_hide_edge_handler" ref="7554deb5a22be446b2b423f2ce481c64" args="(edge e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::post_hide_edge_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00010.html">edge</a>&nbsp;</td>
          <td class="paramname"> <em>e</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called after a <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> got hidden; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;e&lt;/code&gt;</em>&nbsp;</td><td>hidden <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#b2f8520bcac080d73c55228fecc61825">graph::hide_edge</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="4c3634093c7d8877b6c229bcbfa4702b"></a><!-- doxytag: member="graph::pre_restore_edge_handler" ref="4c3634093c7d8877b6c229bcbfa4702b" args="(edge e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::pre_restore_edge_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00010.html">edge</a>&nbsp;</td>
          <td class="paramname"> <em>e</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called before a <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> is restored; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;e&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00010.html" title="An edge in a graph.">edge</a> to be restored </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#2e5426682a0897b9f9104b019970bedc">graph::restore_edge</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="8c0f68bcd054fc2736716996bbf56472"></a><!-- doxytag: member="graph::post_restore_edge_handler" ref="8c0f68bcd054fc2736716996bbf56472" args="(edge e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::post_restore_edge_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00010.html">edge</a>&nbsp;</td>
          <td class="paramname"> <em>e</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called after a <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> was restored; can be redefined in a derived class for customization<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;e&lt;/code&gt;</em>&nbsp;</td><td>restored <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#2e5426682a0897b9f9104b019970bedc">graph::restore_edge</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="16ccad78837d16be59854549cd2d847a"></a><!-- doxytag: member="graph::pre_clear_handler" ref="16ccad78837d16be59854549cd2d847a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::pre_clear_handler           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called before performing clear; can be redefined in a derived class for customization. <em>Please note:</em> Although nodes and edges are deleted during <a class="el" href="a00014.html#9ff5d6af3653e79f87b836701453f55a">graph::clear</a> this is not achieved by calling <a class="el" href="a00014.html#8bdc09d5b9ac4bd26586b054d8fcbe91">graph::del_node</a> and <a class="el" href="a00014.html#d9356508c49c542dfd4b7169297387c6">graph::del_edge</a>, which is why the correspondig handler will not be called.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#9ff5d6af3653e79f87b836701453f55a">graph::clear</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="870633528590b7925cd27776bdd2bbd2"></a><!-- doxytag: member="graph::post_clear_handler" ref="870633528590b7925cd27776bdd2bbd2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::post_clear_handler           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called after the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> was cleared; can be redefined in a derived class for customization <em>Please note:</em> Although nodes and edges are deleted during <a class="el" href="a00014.html#9ff5d6af3653e79f87b836701453f55a">graph::clear</a> this is not achieved by calling <a class="el" href="a00014.html#8bdc09d5b9ac4bd26586b054d8fcbe91">graph::del_node</a> and <a class="el" href="a00014.html#d9356508c49c542dfd4b7169297387c6">graph::del_edge</a>, which is why the correspondig handler will not be called.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#9ff5d6af3653e79f87b836701453f55a">graph::clear</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="505198f412b1e426e9d09b62ea9811e8"></a><!-- doxytag: member="graph::pre_make_directed_handler" ref="505198f412b1e426e9d09b62ea9811e8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::pre_make_directed_handler           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called before performing make_directed (only if <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> was undirected) can be redefined in a derived class for customization<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#1615678dee6248d6d8a00c553770b3bd">graph::make_directed</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="43dc35def3d8125eb8f3841d55e0b1c8"></a><!-- doxytag: member="graph::post_make_directed_handler" ref="43dc35def3d8125eb8f3841d55e0b1c8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::post_make_directed_handler           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called after performing make_directed; (only if <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> was undirected) can be redefined in a derived class for customization<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#1615678dee6248d6d8a00c553770b3bd">graph::make_directed</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="8964107991e6f411ba8992f6b1deda21"></a><!-- doxytag: member="graph::pre_make_undirected_handler" ref="8964107991e6f411ba8992f6b1deda21" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::pre_make_undirected_handler           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called before performing make_undirected; (only if <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> was directed) can be redefined in a derived class for customization<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#31c8b895bd842f1b9dcc67649956cfc7">graph::make_undirected</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="3d2bc348d12931aff1d2e97a6b4285c3"></a><!-- doxytag: member="graph::post_make_undirected_handler" ref="3d2bc348d12931aff1d2e97a6b4285c3" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::post_make_undirected_handler           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Virtual function called after performing make_undirected; (only if <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> was directed) can be redefined in a derived class for customization<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#31c8b895bd842f1b9dcc67649956cfc7">graph::make_undirected</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="81300befaa8bc1525793f4849f1473a5"></a><!-- doxytag: member="graph::pre_graph_save_handler" ref="81300befaa8bc1525793f4849f1473a5" args="(ostream *os) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::pre_graph_save_handler           </td>
          <td>(</td>
          <td class="paramtype">ostream *&nbsp;</td>
          <td class="paramname"> <em>os</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called before writing the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> key to <code>os</code>. This can be used to write top-level keys that should appear before the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> in the file.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;os&lt;/code&gt;</em>&nbsp;</td><td>output stream. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#1919b4b731aeabee4bea17ca1494d0d5">graph::save</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="daf1ba615a8647485b89e94cdb6ae209"></a><!-- doxytag: member="graph::save_graph_info_handler" ref="daf1ba615a8647485b89e94cdb6ae209" args="(ostream *) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::save_graph_info_handler           </td>
          <td>(</td>
          <td class="paramtype">ostream *&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called before the closing bracket of the list belonging to the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> key is written. This can be used to write information that belong to the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>, and thus should appear within the list associated with the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> key.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;os&lt;/code&gt;</em>&nbsp;</td><td>output stream. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#1919b4b731aeabee4bea17ca1494d0d5">graph::save</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="9ff703e09f902bf431664587057081ca"></a><!-- doxytag: member="graph::save_node_info_handler" ref="9ff703e09f902bf431664587057081ca" args="(ostream *, node) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::save_node_info_handler           </td>
          <td>(</td>
          <td class="paramtype">ostream *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called before the closing bracket of the list belonging to the key of <a class="el" href="a00020.html" title="A node in a graph.">node</a> <code>n</code> is written. This can be used to write information belonging to the <a class="el" href="a00020.html" title="A node in a graph.">node</a> <code>n</code> and thus should appear within the list associated with this <a class="el" href="a00020.html" title="A node in a graph.">node</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;os&lt;/code&gt;</em>&nbsp;</td><td>output stream. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#1919b4b731aeabee4bea17ca1494d0d5">graph::save</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="9623957f45c2bc7c6042fd22c8a86241"></a><!-- doxytag: member="graph::save_edge_info_handler" ref="9623957f45c2bc7c6042fd22c8a86241" args="(ostream *, edge) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::save_edge_info_handler           </td>
          <td>(</td>
          <td class="paramtype">ostream *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00010.html">edge</a>&nbsp;</td>
          <td class="paramname"></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called before the closing bracket of the list belonging to the key of <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> <code>e</code> is written. This can be used to write information belonging to the <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> <code>e</code> and thus should appear within the list associated with this <a class="el" href="a00010.html" title="An edge in a graph.">edge</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;os&lt;/code&gt;</em>&nbsp;</td><td>output stream. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#1919b4b731aeabee4bea17ca1494d0d5">graph::save</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="adf85f37373798a6c53be7c0a5e98025"></a><!-- doxytag: member="graph::after_graph_save_handler" ref="adf85f37373798a6c53be7c0a5e98025" args="(ostream *) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::after_graph_save_handler           </td>
          <td>(</td>
          <td class="paramtype">ostream *&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called after writing the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> key to <code>os</code>. This can be used to write top-level keys that should appear after the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> in the file.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;os&lt;/code&gt;</em>&nbsp;</td><td>output stream. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#1919b4b731aeabee4bea17ca1494d0d5">graph::save</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="5aab9939de7973f7da6cc976a766c7a1"></a><!-- doxytag: member="graph::top_level_key_handler" ref="5aab9939de7973f7da6cc976a766c7a1" args="(GML_pair *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::top_level_key_handler           </td>
          <td>(</td>
          <td class="paramtype">GML_pair *&nbsp;</td>
          <td class="paramname"> <em>list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called after the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> is completely built. The topmost list of key-value-pairs is passed to this handler. NB: This list also contains the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> key, which was used to build the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;list&lt;/code&gt;</em>&nbsp;</td><td>pointer to the list of key-value pairs at top level </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#93a350b8ce63ef0b0545722ba519fd3d">graph::load</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="9f674b4ef5a4073766d77c617769e8e5"></a><!-- doxytag: member="graph::load_node_info_handler" ref="9f674b4ef5a4073766d77c617769e8e5" args="(node n, GML_pair *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::load_node_info_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00020.html">node</a>&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GML_pair *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called after a <a class="el" href="a00020.html" title="A node in a graph.">node</a> is created. The whole list of key-value-pairs belonging to this <a class="el" href="a00020.html" title="A node in a graph.">node</a> is passed to this handler together with the <a class="el" href="a00020.html" title="A node in a graph.">node</a> itself.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;n&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00020.html" title="A node in a graph.">node</a> parsed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;list&lt;/code&gt;</em>&nbsp;</td><td>pointer to the list of key-value-pairs of this <a class="el" href="a00020.html" title="A node in a graph.">node</a>. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#93a350b8ce63ef0b0545722ba519fd3d">graph::load</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="2938b831b990712ac5c466acc7864874"></a><!-- doxytag: member="graph::load_edge_info_handler" ref="2938b831b990712ac5c466acc7864874" args="(edge e, GML_pair *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::load_edge_info_handler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00010.html">edge</a>&nbsp;</td>
          <td class="paramname"> <em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GML_pair *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called after an <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> is created. The whole list of key-value-pairs belonging to this <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> is passed to this handler together with the <a class="el" href="a00010.html" title="An edge in a graph.">edge</a> itself.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;e&lt;/code&gt;</em>&nbsp;</td><td><a class="el" href="a00010.html" title="An edge in a graph.">edge</a> parsed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;list&lt;/code&gt;</em>&nbsp;</td><td>pointer to the list of key-value-pairs of this <a class="el" href="a00010.html" title="An edge in a graph.">edge</a>. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#93a350b8ce63ef0b0545722ba519fd3d">graph::load</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="3777321eda0c9d2b9a5cd6dc71388920"></a><!-- doxytag: member="graph::load_graph_info_handler" ref="3777321eda0c9d2b9a5cd6dc71388920" args="(GML_pair *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void graph::load_graph_info_handler           </td>
          <td>(</td>
          <td class="paramtype">GML_pair *&nbsp;</td>
          <td class="paramname"> <em>list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called after the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> is completely built. The whole list for the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> key used to build this <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a> is passed to this handler.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>&lt;code&gt;list&lt;/code&gt;</em>&nbsp;</td><td>pointer to the list of key-value-pairs of the <a class="el" href="a00014.html" title="A directed or undirected graph.">graph</a>. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00014.html#93a350b8ce63ef0b0545722ba519fd3d">graph::load</a> </dd></dl>

</div>
</div><p>
    <p class="links">
      <a href="http://www.uni-passau.de/">University of Passau</a>
      &nbsp;-&nbsp;
      <a href="http://www.fmi.uni-passau.de/">FMI</a>
      &nbsp;-&nbsp;
      <a href="http://www.fmi.uni-passau.de/fmi/lehrstuehle/brandenburg/">Theoretical
	Computer Science</a>
    </p>
  <div class="copyright">
      Design &copy; 2002, 2003 <a href="mailto:raitner@fmi.uni-passau.de">Marcus Raitner</a>,  University of Passau 
  </div>
</body>
</html>
